// 给定一个非空整数数组，除了某个元素只出现一次以外，其余元素均出现两次，找出那个只出现一次的元素，要求不能使用额外的存储空间

// 思路，如果没有时空复杂度的要求，可以使用集合统计每个元素出现的次数，如果不用额外的空间存储，就需要用到位运算的异或运算，对n个数不断进行异或操作，最终可得到单词出现的元素

function singleNumber(nums) {
    if (nums.length === 1) {
        return nums[0]
    }
    let ans = 0
    for (let i = 0; i < nums.length; i++) {
        ans ^= nums[i]        
    }
    return ans
}
let arr = [4,1,2,2,3,3,4]
console.log(singleNumber(arr));